/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.fatecpg.zanotti.acessobanco;

import br.com.fatecpg.zanotti.modelo.Cliente;
import br.com.fatecpg.zanotti.modelo.Produto;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * Classe responsável por realizar toda a Manipulação de Dados referente a tabela Produto do Banco de Dados.
 * @author F.L. Zanotti
 */
public class dmlProduto {
/**
 * Método responsável pela rotina de INSERT no banco de dados
 * @param Produto Objeto Produto
 * @return boolean
 */
    public static boolean cadastrar(Produto Produto) {
        try {
            Connection con = AbreConexao.getConexao();

            String query = "INSERT INTO Produto(cdproduto, cdloja, cdfornecedor, " +
                    "cdnotafiscal, qtproduto, nmmodelo" +
                    ", nmcor, vlcompra, vlvenda, icesgotado)VALUES" +
                    " (seq_cdproduto.NEXTVAL, ?, ?, ?,?,?, ?,?,?,?)";

            PreparedStatement pst = con.prepareStatement(query);

            pst.setInt(1, Integer.parseInt(Produto.getCDLOJA()));
            pst.setInt(2, Integer.parseInt(Produto.getCDFORNECEDOR()));
            pst.setInt(3, Integer.parseInt(Produto.getCDNOTAFISCAL()));
            pst.setInt(4, Integer.parseInt(Produto.getQTPRODUTO()));
            pst.setString(5, Produto.getNMMODELO());
            pst.setString(6, Produto.getNMCOR());
            pst.setDouble(7, Double.parseDouble(Produto.getVLCOMPRA()));
            pst.setDouble(8, Double.parseDouble(Produto.getVLVENDA()));
            pst.setString(9, Produto.getICESGOTADO());

            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "Cadastro realizado com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }

    }
/**
 * Método responsável pela rotina de UPDATE no banco de dados
 * @param Produto Objeto Produto
 * @return boolean
 */
    public static boolean atualizar(Produto Produto) {
        try {
            Connection con = AbreConexao.getConexao();

            String query = "UPDATE PRODUTO SET " +
                    "cdloja = ?, " +
                    "cdfornecedor = ?, " +
                    "cdnotafiscal = ?, " +
                    "qtproduto = ?, " +
                    "nmmodelo = ?, " +
                    "nmcor = ?, " +
                    "vlcompra = ?, " +
                    "vlvenda = ?, " +
                    "icesgotado = ? " +
                    "WHERE CDPRODUTO = ?";

            PreparedStatement pst = con.prepareStatement(query);

            pst.setString(10, Produto.getCDPRODUTO());

            pst.setString(1, Produto.getCDLOJA());
            pst.setString(2, Produto.getCDFORNECEDOR());
            pst.setString(3, Produto.getCDNOTAFISCAL());
            pst.setString(4, Produto.getQTPRODUTO());
            pst.setString(5, Produto.getNMMODELO());
            pst.setString(6, Produto.getNMCOR());
            pst.setString(7, Produto.getVLCOMPRA());
            pst.setString(8, Produto.getVLVENDA());
            pst.setString(9, Produto.getICESGOTADO());

            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "Atualização realizada com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }
    }
/**
 * Método responsável pela rotina de DELETE no banco de dados
 * @param cd Código do Produto
 * @return boolean
 */
        public static boolean deletar(String cd) {
        try {
            Connection con = AbreConexao.getConexao();

            String query = "DELETE FROM PRODUTO " +
                    "WHERE CDPRODUTO = ?";

            PreparedStatement pst = con.prepareStatement(query);

            pst.setString(1, cd);

            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "O cadastro foi apagado com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }
        }
}
